﻿# 快速排序
def partition(r,left,right):
    i = left
    j = right
    while(i<j):
        while(i<j and r[i]<=r[j]):            # 右侧扫描
            j -= 1
        if i<j:
            r[i],r[j] = r[j],r[i]
            i += 1
        while(i<j and r[i]<=r[j]):            # 左侧扫描
            i += 1
        if i<j:
            r[i],r[j] = r[j],r[i]
            j -= 1
    return i                                # 轴值的位置

def qsort(r,left,right):
    if left<right:
        pivot = partition(r,left,right)   # 一次划分
        qsort(r,left,pivot-1)             # 递归对左侧子序列进行快速排序
        qsort(r,pivot+1,right)            # 递归对右侧子序列进行快速排序

r = [7,1,5,3,6,34,22,12,43,23]

qsort(r,0,len(r)-1)                       #必须要加一个 -1
print r
